package model

import "time"

// DeviceBinding 表示用户与设备的绑定关系在数据库中的存储结构
// 存储在 MongoDB 的 "device_bindings" 集合中
type DeviceBinding struct {
	UserID    int64     `bson:"user_id"`    // 用户ID，对应 proto 中的 user_id
	DeviceID  string    `bson:"device_id"`  // 设备唯一标识，对应 proto 中的 device_id
	BoundTime time.Time `bson:"bound_time"` // 设备成功绑定到用户的时间
}

// PendingBindingRequest 用于存储等待设备异步响应的请求信息
// 这些请求已发送到设备，但尚未收到设备的确认响应
// 存储在 MongoDB 的 "pending_binding_requests" 临时集合中
type PendingBindingRequest struct {
	RequestID   string    `bson:"request_id"`   // 唯一的请求ID，用于匹配设备返回的异步响应
	UserID      int64     `bson:"user_id"`      // 发起绑定或解绑请求的用户ID
	DeviceID    string    `bson:"device_id"`    // 目标设备ID
	RequestType string    `bson:"request_type"` // 请求类型: "bind" 或 "unbind"
	Timestamp   time.Time `bson:"timestamp"`    // 请求发起时间，可用于判断请求是否超时
}
